package com.javacoo.swing.jxbrowser.engine;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import com.javacoo.swing.jxbrowser.BaseBrowser;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserContext;
import com.teamdev.jxbrowser.chromium.BrowserContextParams;
import com.teamdev.jxbrowser.chromium.StorageType;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;

/**
 * 创建隐身浏览器
 * <li></li>
 * 默认情况下，每个Browser实例都会将所有用户数据（如历史记录，Cookie，缓存）存储在磁盘上。从6.8开始，您可以配置Browser实例以将所有用户数据存储在内存中（Chromium的“隐身”模式），以便在Java应用程序终止后清除所有用户数据。
 *
 * 以下示例演示如何配置Browser实例以“隐身”模式工作并将所有用户数据存储在内存中
 *
 * @author: duanyong@jccfc.com
 * @since: 2020/9/24 8:32
 */
public class CreatingIncognitoBrowser extends BaseBrowser {
    public static void main(String[] args) {
        // No user data will be stored to the "user-data-dir" folder.
            // This directory will be used for internal purposes
            // on macOS and Linux platforms.
        BrowserContextParams params = new BrowserContextParams("user-data-dir");
        //配置Browser实例以“隐身”模式工作并将所有用户数据存储在内存中
        params.setStorageType(StorageType.MEMORY);

        BrowserContext browserContext = new BrowserContext(params);
        Browser browser = new Browser(browserContext);
        BrowserView view = new BrowserView(browser);

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(view, BorderLayout.CENTER);
        frame.setSize(700, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

        browser.loadURL(BASE_URL);
    }
}
